import request from '@/utils/request'

/**
 * 获取权限列表
 * @param {Object} params 查询参数
 * @returns {Promise}
 */
export function getPermissionList(params) {
  return request({
    url: '/permissions',
    method: 'get',
    params
  })
}

/**
 * 获取权限详情
 * @param {number} id 权限ID
 * @returns {Promise}
 */
export function getPermissionDetail(id) {
  return request({
    url: `/permissions/${id}`,
    method: 'get'
  })
}

/**
 * 创建权限
 * @param {Object} data 权限数据
 * @returns {Promise}
 */
export function createPermission(data) {
  return request({
    url: '/permissions',
    method: 'post',
    data
  })
}

/**
 * 更新权限
 * @param {number} id 权限ID
 * @param {Object} data 权限数据
 * @returns {Promise}
 */
export function updatePermission(id, data) {
  return request({
    url: `/permissions/${id}`,
    method: 'put',
    data
  })
}

/**
 * 删除权限
 * @param {number} id 权限ID
 * @returns {Promise}
 */
export function deletePermission(id) {
  return request({
    url: `/permissions/${id}`,
    method: 'delete'
  })
}

/**
 * 获取权限树
 * @returns {Promise}
 */
export function getPermissionTree() {
  return request({
    url: '/permissions/tree',
    method: 'get'
  })
}

/**
 * 获取所有权限（用于下拉选择）
 * @returns {Promise}
 */
export function getAllPermissions() {
  return request({
    url: '/permissions/all',
    method: 'get'
  })
}

/**
 * 获取当前用户可分配的权限树
 * @returns {Promise}
 */
export function getUserPermissionTree() {
  // 使用统一的权限树接口，前端根据用户权限过滤
  return request({
    url: '/permissions/tree',
    method: 'get'
  })
}
